using MicroMsg.Common.Utils;
using MicroMsg.Manager;
using MicroMsg.Scene;
using MicroMsg.Storage;
using System;
using System.Xml.Linq;
namespace MicroMsg.UI.UserContrl
{
	public class FMessageHelper
	{
		public static FMessageValidInfo ParseValidFMessageXML(string xmlStr)
		{
			FMessageValidInfo fMessageValidInfo = null;
			FMessageValidInfo result;
			try
			{
				fMessageValidInfo = new FMessageValidInfo();
				XDocument xDocument = XDocument.Parse(xmlStr);
				XElement xElement = xDocument.Element("msg");
				XAttribute xAttribute = xElement.Attribute("fromusername");
				if (xAttribute != null)
				{
					fMessageValidInfo.fromusername = xAttribute.get_Value();
				}
				else
				{
					xAttribute = xElement.Attribute("username");
					if (xAttribute != null)
					{
						fMessageValidInfo.fromusername = xAttribute.get_Value();
					}
				}
				xAttribute = xElement.Attribute("fromnickname");
				if (xAttribute != null)
				{
					fMessageValidInfo.fromnickname = xAttribute.get_Value();
				}
				else
				{
					xAttribute = xElement.Attribute("nickname");
					if (xAttribute != null)
					{
						fMessageValidInfo.fromnickname = xAttribute.get_Value();
					}
				}
				xAttribute = xElement.Attribute("fullpy");
				if (xAttribute != null)
				{
					fMessageValidInfo.fullpy = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("shortpy");
				if (xAttribute != null)
				{
					fMessageValidInfo.shortpy = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("content");
				if (xAttribute != null)
				{
					fMessageValidInfo.content = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("imagestatus");
				if (xAttribute != null)
				{
					fMessageValidInfo.imagestatus = int.Parse(xAttribute.get_Value());
				}
				xAttribute = xElement.Attribute("scene");
				if (xAttribute != null)
				{
					fMessageValidInfo.scene = int.Parse(xAttribute.get_Value());
				}
				xAttribute = xElement.Attribute("mobileidentify");
				if (xAttribute != null)
				{
					fMessageValidInfo.mobileidentify = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("qqnum");
				if (xAttribute != null)
				{
					fMessageValidInfo.qqnum = long.Parse(xAttribute.get_Value());
				}
				xAttribute = xElement.Attribute("qqnickname");
				if (xAttribute != null)
				{
					fMessageValidInfo.qqnickname = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("qqremark");
				if (xAttribute != null)
				{
					fMessageValidInfo.qqremark = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("sign");
				if (xAttribute != null)
				{
					fMessageValidInfo.sign = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("sex");
				if (xAttribute != null)
				{
					fMessageValidInfo.int_0 = int.Parse(xAttribute.get_Value());
				}
				xAttribute = xElement.Attribute("city");
				if (xAttribute != null)
				{
					fMessageValidInfo.city = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("province");
				if (xAttribute != null)
				{
					fMessageValidInfo.province = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("albumflag");
				if (xAttribute != null)
				{
					fMessageValidInfo.nAlbumFlag = int.Parse(xAttribute.get_Value());
				}
				xAttribute = xElement.Attribute("albumstyle");
				if (xAttribute != null)
				{
					fMessageValidInfo.nAlbumStyle = int.Parse(xAttribute.get_Value());
				}
				xAttribute = xElement.Attribute("albumbgimgid");
				if (xAttribute != null)
				{
					fMessageValidInfo.strAlbumbgimgid = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("snsflag");
				if (xAttribute != null)
				{
					fMessageValidInfo.nSnsFlag = int.Parse(xAttribute.get_Value());
				}
				xAttribute = xElement.Attribute("snsbgimgid");
				if (xAttribute != null)
				{
					fMessageValidInfo.strSnsbgimgid = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("snsbgobjectid");
				if (xAttribute != null)
				{
					fMessageValidInfo.nSnsBGObjectID = ulong.Parse(xAttribute.get_Value());
				}
				return fMessageValidInfo;
			}
			catch (Exception ex)
			{
				Log.smethod_1("error->FMessageHelper->ParseFMessageXML xmlStr:" + xmlStr, ex.get_Message());
				result = null;
			}
			return result;
		}
		public static FMessageFriendInfo ParseFriendFMessageXML(string xmlStr)
		{
			FMessageFriendInfo fMessageFriendInfo = null;
			FMessageFriendInfo result;
			try
			{
				fMessageFriendInfo = new FMessageFriendInfo();
				XDocument xDocument = XDocument.Parse(xmlStr);
				XElement xElement = xDocument.Element("msg");
				XAttribute xAttribute = xElement.Attribute("fromusername");
				if (xAttribute != null)
				{
					fMessageFriendInfo.fromUsername = xAttribute.get_Value();
				}
				else
				{
					xAttribute = xElement.Attribute("username");
					fMessageFriendInfo.fromUsername = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("fromnickname");
				if (xAttribute != null)
				{
					fMessageFriendInfo.nickname = xAttribute.get_Value();
				}
				else
				{
					xAttribute = xElement.Attribute("nickname");
					fMessageFriendInfo.nickname = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("fullpy");
				if (xAttribute != null)
				{
					fMessageFriendInfo.quanPin = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("shortpy");
				if (xAttribute != null)
				{
					fMessageFriendInfo.pyInitial = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("source");
				if (xAttribute != null)
				{
					fMessageFriendInfo.source = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("imagestatus");
				if (xAttribute != null)
				{
					fMessageFriendInfo.imageFlag = int.Parse(xAttribute.get_Value());
				}
				xAttribute = xElement.Attribute("scene");
				if (xAttribute != null)
				{
					fMessageFriendInfo.scene = int.Parse(xAttribute.get_Value());
				}
				xAttribute = xElement.Attribute("mobileidentify");
				if (xAttribute != null)
				{
					fMessageFriendInfo.phoneNumMD5 = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("mobilelongidentify");
				if (xAttribute != null)
				{
					fMessageFriendInfo.fullPhoneNumMD5 = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("qqnum");
				if (xAttribute != null)
				{
					fMessageFriendInfo.qqNum = long.Parse(xAttribute.get_Value());
				}
				xAttribute = xElement.Attribute("qqnickname");
				if (xAttribute != null)
				{
					fMessageFriendInfo.qqNickname = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("qqremark");
				if (xAttribute != null)
				{
					fMessageFriendInfo.qqRemark = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("albumflag");
				if (xAttribute != null)
				{
					fMessageFriendInfo.nAlbumFlag = int.Parse(xAttribute.get_Value());
				}
				xAttribute = xElement.Attribute("albumstyle");
				if (xAttribute != null)
				{
					fMessageFriendInfo.nAlbumStyle = int.Parse(xAttribute.get_Value());
				}
				xAttribute = xElement.Attribute("albumbgimgid");
				if (xAttribute != null)
				{
					fMessageFriendInfo.strAlbumbgimgid = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("snsflag");
				if (xAttribute != null)
				{
					fMessageFriendInfo.nSnsFlag = int.Parse(xAttribute.get_Value());
				}
				xAttribute = xElement.Attribute("snsbgimgid");
				if (xAttribute != null)
				{
					fMessageFriendInfo.strSnsbgimgid = xAttribute.get_Value();
				}
				xAttribute = xElement.Attribute("snsbgobjectid");
				if (xAttribute != null)
				{
					fMessageFriendInfo.nSnsBGObjectID = ulong.Parse(xAttribute.get_Value());
				}
				return fMessageFriendInfo;
			}
			catch (Exception ex)
			{
				Log.smethod_1("error->FMessageHelper->ParseFriendFMessageXML xmlStr:" + xmlStr, ex.get_Message());
				result = null;
			}
			return result;
		}
		public static FMessageValidInfo GetFmessageValidInfo(ChatMsg chatMsg_0)
		{
			if (chatMsg_0 == null)
			{
				return null;
			}
			FMessageValidInfo result = null;
			if (chatMsg_0.IsValidFmessage())
			{
				result = FMessageHelper.ParseValidFMessageXML(chatMsg_0.strMsg);
			}
			return result;
		}
		public static IFmessageInfo GetFmessageInfo(ChatMsg chatMsg_0)
		{
			if (chatMsg_0 == null)
			{
				return null;
			}
			IFmessageInfo result;
			if (chatMsg_0.IsValidFmessage())
			{
				FMessageValidInfo fMessageValidInfo = FMessageHelper.ParseValidFMessageXML(chatMsg_0.strMsg);
				if (fMessageValidInfo == null)
				{
					return null;
				}
				result = fMessageValidInfo;
			}
			else
			{
				FMessageFriendInfo fMessageFriendInfo = FMessageHelper.ParseFriendFMessageXML(chatMsg_0.strMsg);
				if (fMessageFriendInfo == null)
				{
					return null;
				}
				result = fMessageFriendInfo;
			}
			return result;
		}
		public static string getUsrInfoContent(string phoneMd5, string usrName, int scene)
		{
			string text = FMessageHelper.getUsrInfoContent(usrName, scene);
			if (!string.IsNullOrEmpty(text))
			{
				return text;
			}
			if (scene == 10 && !string.IsNullOrEmpty(phoneMd5))
			{
				ServiceCenter.mobileContactMgr.updateUserNameByPhoneMD5(phoneMd5, usrName);
				MobileContact byUserName = StorageMgr.mobileContact.getByUserName(usrName);
				if (byUserName != null)
				{
					text = byUserName.strRealName;
				}
			}
			return text;
		}
		public static string getUsrInfoContent(string usrName, int scene)
		{
			if (string.IsNullOrEmpty(usrName))
			{
				return null;
			}
			string text = null;
			MobileContact byUserName = StorageMgr.mobileContact.getByUserName(usrName);
			if (byUserName != null)
			{
				text = byUserName.strRealName;
			}
			if (text != null)
			{
				return text;
			}
			return text;
		}
	}
}
